const express = require('express')
const router = express.Router()

// 导入用户路由处理函数模块
const userHandler = require('../router_handler/user.js')


// 1. 导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')
// 2. 导入需要的验证规则对象
const { reg_login_schema } = require('../schema/user')

//========================   【注册用户】   ====================================================

// 注册新用户
// 3. 在注册新用户的路由中，声明局部中间件，对当前请求中携带的数据进行验证
// 3.1 数据验证通过后，会把这次请求流转给后面的路由处理函数
// 3.2 数据验证失败后，终止后续代码的执行，并抛出一个全局的 Error 错误，进入全局错误级别中间件中进行处理
// expressJoi(req_login_schema),

router.post('/reguser',expressJoi(reg_login_schema), userHandler.regUser)


//================        【登录】        ====================================================
/**
 * 2.6.0 实现步骤
 * 1. 检测表单数据是否合法
 * 2. 根据用户名查询用户的数据
 * 3. 判断用户输入的密码是否正确
 * 4. 生成 JWT 的 Token 字符串 
 */
router.post('/login', expressJoi(reg_login_schema),userHandler.login)

module.exports = router